package com.ruoyi.web.domain;

import java.math.BigDecimal;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 药品管理对象 drug
 *
 * @author drx
 * @date 2025-05-13
 */
@ApiModel("药品管理")
public class Drug extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ApiModelProperty("主键")
    private Long id;

    /**
     * 中文名称
     */
    @Excel(name = "中文名称")
    @ApiModelProperty("中文名称")
    private String name;

    /**
     * 英文名称
     */
    @Excel(name = "英文名称")
    @ApiModelProperty("英文名称")
    private String nameEn;

    /**
     * 产品名称
     */
    @Excel(name = "产品名称")
    @ApiModelProperty("产品名称")
    private String productName;

    /**
     * 别称
     */
    @Excel(name = "别称")
    @ApiModelProperty("别称")
    private String alias;

    @Excel(name = "原价")
    @ApiModelProperty("原价")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal originalPrice;

    @Excel(name = "价格")
    @ApiModelProperty("价格")
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private BigDecimal price;

    /**
     * 主图
     */
    @Excel(name = "主图")
    @ApiModelProperty("主图")
    private String icon;

    /**
     * 适应症简介
     */
    @ApiModelProperty("适应症简介")
    private String introduction;

    /**
     * 完整规格
     */
    @ApiModelProperty("完整规格")
    private String specifications;

    /**
     * 价格规格
     */
    @ApiModelProperty("价格规格")
    private String priceSpecifications;

    /**
     * 剂型
     */
    @ApiModelProperty("剂型")
    private String dosage;

    /**
     * 有效期
     */
    @ApiModelProperty("有效期")
    private String periodOfValidity;

    /**
     * 储存方法
     */
    @ApiModelProperty("储存方法")
    private String storagecondition;

    /**
     * 资讯
     */
    @ApiModelProperty("资讯")
    private String information;

    /**
     * 适应症
     */
    @ApiModelProperty("适应症")
    private String adaptationdisease;

    /**
     * 治疗效果
     */
    @ApiModelProperty("治疗效果")
    private String therapeuticEffect;

    /**
     * 用法用量
     */
    @ApiModelProperty("用法用量")
    private String usageanddosage;

    /**
     * 注意事项
     */
    @ApiModelProperty("注意事项")
    private String announcements;

    /**
     * 副作用
     */
    @ApiModelProperty("副作用")
    private String reaction;

    /**
     * 标题  t
     */
    @ApiModelProperty("标题  t")
    private String title;

    /**
     * 描述 d
     */
    @ApiModelProperty("描述 d")
    private String description;

    /**
     * 关键词 k
     */
    @ApiModelProperty("关键词 k")
    private String keywords;

    /**
     * 温馨提示
     */
    @ApiModelProperty("温馨提示")
    private String warmPrompt;

    /**
     * 参考资料
     */
    @ApiModelProperty("参考资料")
    private String referenceMaterial;

    /**
     * 信息来源
     */
    @ApiModelProperty("信息来源")
    private String informationSources;

    /**
     * 冗余字段1
     */
    @ApiModelProperty("冗余字段1")
    private String remark1;

    /**
     * 冗余字段2
     */
    @ApiModelProperty("冗余字段2")
    private String remark2;

    /**
     * 冗余字段3
     */
    @ApiModelProperty("冗余字段3")
    private String remark3;

    /**
     * 创建人名称
     */
    @ApiModelProperty("创建人名称")
    private String createName;

    /**
     * 更新人名称
     */
    @Excel(name = "更新人名称")
    @ApiModelProperty("更新人名称")
    private String updateName;

    /**
     * 是否删除（0否；1是）
     */
    @ApiModelProperty("是否删除（0否；1是）")
    private String delFlag;

    /**
     * 药品其他信息集合
     */
    private List<DrugOther> drugOtherList;

    /**
     * 药企集合
     */
    private List<DrugEnterprise> drugEnterpriseList;

    /**
     * 药品疾病集合
     */
    private List<DrugDisease> drugDiseaseList;

    /**
     * 药品靶点集合
     */
    private List<DrugTarget> drugTargetList;

    /*
    * 查询条件使用
    * 药品疾病
    * */
    private DiseaseNew diseaseNew;

    /*
    * 制造商
    * */
    private String manufacturer;

    /*
    * 是否启用  0 不启用  1、启用
    * */
    private String state;

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    public String getManufacturer() {
        return manufacturer;
    }

    public void setManufacturer(String manufacturer) {
        this.manufacturer = manufacturer;
    }

    public BigDecimal getOriginalPrice() {
        return originalPrice;
    }

    public void setOriginalPrice(BigDecimal originalPrice) {
        this.originalPrice = originalPrice;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public List<DrugTarget> getDrugTargetList() {
        return drugTargetList;
    }

    public void setDrugTargetList(List<DrugTarget> drugTargetList) {
        this.drugTargetList = drugTargetList;
    }

    public List<DrugDisease> getDrugDiseaseList() {
        return drugDiseaseList;
    }

    public void setDrugDiseaseList(List<DrugDisease> drugDiseaseList) {
        this.drugDiseaseList = drugDiseaseList;
    }

    public List<DrugEnterprise> getDrugEnterpriseList() {
        return drugEnterpriseList;
    }

    public void setDrugEnterpriseList(List<DrugEnterprise> drugEnterpriseList) {
        this.drugEnterpriseList = drugEnterpriseList;
    }

    public List<DrugOther> getDrugOtherList() {
        return drugOtherList;
    }

    public void setDrugOtherList(List<DrugOther> drugOtherList) {
        this.drugOtherList = drugOtherList;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setNameEn(String nameEn) {
        this.nameEn = nameEn;
    }

    public String getNameEn() {
        return nameEn;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getProductName() {
        return productName;
    }

    public void setAlias(String alias) {
        this.alias = alias;
    }

    public String getAlias() {
        return alias;
    }

    public void setIcon(String icon) {
        this.icon = icon;
    }

    public String getIcon() {
        return icon;
    }

    public void setIntroduction(String introduction) {
        this.introduction = introduction;
    }

    public String getIntroduction() {
        return introduction;
    }

    public void setSpecifications(String specifications) {
        this.specifications = specifications;
    }

    public String getSpecifications() {
        return specifications;
    }

    public void setPriceSpecifications(String priceSpecifications) {
        this.priceSpecifications = priceSpecifications;
    }

    public String getPriceSpecifications() {
        return priceSpecifications;
    }

    public void setDosage(String dosage) {
        this.dosage = dosage;
    }

    public String getDosage() {
        return dosage;
    }

    public void setPeriodOfValidity(String periodOfValidity) {
        this.periodOfValidity = periodOfValidity;
    }

    public String getPeriodOfValidity() {
        return periodOfValidity;
    }

    public void setStoragecondition(String storagecondition) {
        this.storagecondition = storagecondition;
    }

    public String getStoragecondition() {
        return storagecondition;
    }

    public void setInformation(String information) {
        this.information = information;
    }

    public String getInformation() {
        return information;
    }

    public void setAdaptationdisease(String adaptationdisease) {
        this.adaptationdisease = adaptationdisease;
    }

    public String getAdaptationdisease() {
        return adaptationdisease;
    }

    public void setTherapeuticEffect(String therapeuticEffect) {
        this.therapeuticEffect = therapeuticEffect;
    }

    public String getTherapeuticEffect() {
        return therapeuticEffect;
    }

    public void setUsageanddosage(String usageanddosage) {
        this.usageanddosage = usageanddosage;
    }

    public String getUsageanddosage() {
        return usageanddosage;
    }

    public void setAnnouncements(String announcements) {
        this.announcements = announcements;
    }

    public String getAnnouncements() {
        return announcements;
    }

    public void setReaction(String reaction) {
        this.reaction = reaction;
    }

    public String getReaction() {
        return reaction;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getTitle() {
        return title;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getDescription() {
        return description;
    }

    public void setKeywords(String keywords) {
        this.keywords = keywords;
    }

    public String getKeywords() {
        return keywords;
    }

    public void setWarmPrompt(String warmPrompt) {
        this.warmPrompt = warmPrompt;
    }

    public String getWarmPrompt() {
        return warmPrompt;
    }

    public void setReferenceMaterial(String referenceMaterial) {
        this.referenceMaterial = referenceMaterial;
    }

    public String getReferenceMaterial() {
        return referenceMaterial;
    }

    public void setInformationSources(String informationSources) {
        this.informationSources = informationSources;
    }

    public String getInformationSources() {
        return informationSources;
    }

    public void setRemark1(String remark1) {
        this.remark1 = remark1;
    }

    public String getRemark1() {
        return remark1;
    }

    public void setRemark2(String remark2) {
        this.remark2 = remark2;
    }

    public String getRemark2() {
        return remark2;
    }

    public void setRemark3(String remark3) {
        this.remark3 = remark3;
    }

    public String getRemark3() {
        return remark3;
    }

    public void setCreateName(String createName) {
        this.createName = createName;
    }

    public String getCreateName() {
        return createName;
    }

    public void setUpdateName(String updateName) {
        this.updateName = updateName;
    }

    public String getUpdateName() {
        return updateName;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public DiseaseNew getDiseaseNew() {
        return diseaseNew;
    }

    public void setDiseaseNew(DiseaseNew diseaseNew) {
        this.diseaseNew = diseaseNew;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("name", getName())
                .append("nameEn", getNameEn())
                .append("productName", getProductName())
                .append("alias", getAlias())
                .append("icon", getIcon())
                .append("introduction", getIntroduction())
                .append("specifications", getSpecifications())
                .append("priceSpecifications", getPriceSpecifications())
                .append("dosage", getDosage())
                .append("periodOfValidity", getPeriodOfValidity())
                .append("storagecondition", getStoragecondition())
                .append("information", getInformation())
                .append("adaptationdisease", getAdaptationdisease())
                .append("therapeuticEffect", getTherapeuticEffect())
                .append("usageanddosage", getUsageanddosage())
                .append("announcements", getAnnouncements())
                .append("reaction", getReaction())
                .append("title", getTitle())
                .append("description", getDescription())
                .append("keywords", getKeywords())
                .append("warmPrompt", getWarmPrompt())
                .append("referenceMaterial", getReferenceMaterial())
                .append("informationSources", getInformationSources())
                .append("remark1", getRemark1())
                .append("remark2", getRemark2())
                .append("remark3", getRemark3())
                .append("createBy", getCreateBy())
                .append("createName", getCreateName())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateName", getUpdateName())
                .append("updateTime", getUpdateTime())
                .append("delFlag", getDelFlag())
                .toString();
    }
}
